package com.recSystem.Service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.base.MPJBaseService;
import com.recSystem.Entity.DO.FavoriteDO;
import com.recSystem.Entity.DTO.PaperDTO;

import java.util.List;

public interface FavoriteService extends MPJBaseService<FavoriteDO> {
    // 根据用户id去favorite表中找出所有行并返回

    /**
     * 根据用户id得到他收藏的论文集合
     * @param userId 用户id
     * @return 收藏关系集合
     */
    List<FavoriteDO> getFavoriteRelationsByUserId(int userId);

    /**
     * 根据用户id得到他收藏的论文集合，带分页功能
     * @param userId 用户id
     * @param maxLength 一页的记录条数
     * @param offset 页号，从1开始
     * @return 返回这一页的收藏关系集合
     */
    Page<FavoriteDO> getFavoriteRelationsPageByUserId(int userId, int maxLength, int offset);

    /**
     * 根据用户id获得收藏的论文基本对象的分页集合
     * @param userId
     * @param maxLength
     * @param offset
     * @return 返回论文的页对象
     */
    IPage<PaperDTO> getFavoritePapersByPage(int userId, int maxLength, int offset);

    /**
     * 判断论文是否被当前用户收藏
     * @param userId
     * @param paperId
     * @return
     */
    boolean isFavorite(int userId,int paperId);
}
